シンプルな設計(『Clean Agile』)
リファクタリングのゴールの1つ
必要とされるコードだけを書いて、最もシンプルで、最も小さく、最も表現力のある構造を維持する (Kindle の位置No.2381-2382)
ケント・ベックのルール(ソースはどこだろう?)
上ほど優先順位が高い
1. テストがパス(=動作する)
2. 意図が明らか
具体的には関数の抽出など
3. 重複排除
デザインパターンの出番はここ
(IMO:抽象化、共通化を考えるということか)
4. 要素を減らす
シンプルな設計のゴール
IMO:2つゴールがあるが、同じことを言っているという理解
コードの認知的負荷を可能な限り減らす
認知的負荷をウェイト(重さ)と言っている
設計が複雑になれば認知的負荷は大きくなる
設計と機能の複雑さのバランスをとる
設計の複雑さと要求(機能)の複雑さ
設計を複雑にすれば、要求は単純に叶えられるということ?(操作は単純、複雑さを閉じ込めた)